Skip to content

Optimize performance and refactor font handling in editor#288

Merged
HyeokjinKang merged 17 commits into
mainfrom
perf/rendering-optimizations
Mar 18, 2026
Merged

Optimize performance and refactor font handling in editor#288
HyeokjinKang merged 17 commits into
mainfrom
perf/rendering-optimizations

Conversation

@HyeokjinKang

Copy link
Copy Markdown
Owner

No description provided.

HyeokjinKang and others added 17 commits March 16, 2026 22:28
패턴 히스토리 저장/복원, 복사/붙여넣기, 리트라이 등 딥 클론이 필요한
모든 위치에서 eval 및 JSON 직렬화 방식을 structuredClone()으로 교체.
붙여넣기 함수의 beat 뮤테이션 버그(복사 원본이 변경되던 문제)도 함께 수정.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
매 프레임 new Set(existingSet)으로 이전 프레임 데이터를 복사하는 대신
두 Set을 스왑하고 clear()하는 방식으로 변경하여 GC 압력 감소.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
새로 생성한 객체를 배열에 push한 직후 해당 객체를 찾는 루프에서
JSON.stringify 직렬화 비교 대신 참조 동등성(===)을 사용하도록 변경.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
FONT_STACK 상수로 긴 폰트 패밀리 문자열을 중복 없이 관리하고,
canvasH 기반 고정 폰트는 initialize() 호출 시 UIFontNormal/cachedFontItalic에
캐싱하여 매 프레임 문자열 생성을 제거. 동적 combo 폰트(fontSize가 매 프레임
변경)는 FONT_STACK 상수를 사용하는 템플릿 리터럴로 유지.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
:root에 --font-stack-base, --font-montserrat, --font-metropolis 변수를 정의하고
각 선택자에서 반복되던 긴 폰트 패밀리 목록을 var()로 교체.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Keyframes pace-spinner의 -moz-, -o-, -ms- 블록과 animation 벤더 프리픽스 제거.
표준 @Keyframes의 중복 transform 선언 제거.
2D 캔버스 요소(#componentCanvas)의 효과 없는 will-change: transform 제거.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
같은 페이지에 id="gotoGame"이 두 번 사용되어 유효하지 않은 HTML이었던 문제 수정.
songSelectionContainer 내 요소의 id를 gotoMain으로 변경하고 CSS 선택자에 추가.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…체 재사용 (updater.js)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…eSelection beats 파라미터화 (play, test, tutorial)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@HyeokjinKang HyeokjinKang merged commit 03edc80 into main Mar 18, 2026
4 checks passed
@HyeokjinKang HyeokjinKang deleted the perf/rendering-optimizations branch March 18, 2026 13:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant